package it.pride.primefacesShowcase.controller;

import it.pride.primefacesShowcase.model.Anagrafica;
import it.pride.primefacesShowcase.service.UserService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import javax.faces.application.FacesMessage;
import javax.faces.component.behavior.FacesBehavior;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import java.util.ArrayList;
import java.util.List;
import java.util.ListResourceBundle;

/**
 * Created by IntelliJ IDEA.
 * User: lbonacina
 * Date: 4-nov-2010
 * Time: 17.26.58
 */
@Controller(value = "basicDatatable")
@Scope("session")
public class BasicDatatableController {

    private static Logger logger = Logger.getLogger(BasicDatatableController.class.getName());

    @Autowired
    private UserService userService;

    private UsersDataModel usersDataModel;

    private List<SelectItem> listaProvince ;
    
    private List<SelectItem> tipoApparato ;
    private List<SelectItem> posizionamentoApparato ;
    private List<SelectItem> budgetApparato ;

    private Anagrafica selAnagrafica ;

    public void init() {

        usersDataModel = new UsersDataModel();
        usersDataModel.setWrappedData(userService.findAllAnag());
        listaProvince = new ArrayList<SelectItem>() ;
        listaProvince.add(new SelectItem("","")) ;
        for (String s : userService.findAllProvinces() ) {

            listaProvince.add(new SelectItem(s,s)) ;
        }
        
        tipoApparato = new ArrayList<SelectItem>() ;
        tipoApparato.add(new SelectItem("","")) ;
        tipoApparato.add(new SelectItem("BTS","BTS")) ;
        tipoApparato.add(new SelectItem("BSC","BSC")) ;
        tipoApparato.add(new SelectItem("MSC","MSC")) ;        
        tipoApparato.add(new SelectItem("HUB","HUB")) ;
        tipoApparato.add(new SelectItem("Ripetitore","Ripetitore")) ;

        budgetApparato = new ArrayList<SelectItem>() ;
        budgetApparato.add(new SelectItem("","")) ;
        budgetApparato.add(new SelectItem("Raw Land","Raw Land")) ;
        budgetApparato.add(new SelectItem("Co-located","Co-located")) ;
        budgetApparato.add(new SelectItem("Carrellato","Carrellato")) ;
        budgetApparato.add(new SelectItem("Roof Top","Roof Top")) ;

        posizionamentoApparato = new ArrayList<SelectItem>() ;
        posizionamentoApparato.add(new SelectItem("","")) ;
        posizionamentoApparato.add(new SelectItem("Indoor","Indoor")) ;
        posizionamentoApparato.add(new SelectItem("Outdoor","Outdoor")) ;

    }

    public Anagrafica getSelAnagrafica() {
        return selAnagrafica;
    }

    public void setSelAnagrafica(Anagrafica selAnagrafica) {
        this.selAnagrafica = selAnagrafica;
    }

    public UsersDataModel getUsersDataModel() {
        return usersDataModel;
    }

    public void setUsersDataModel(UsersDataModel usersDataModel) {
        this.usersDataModel = usersDataModel;
    }

    public List<SelectItem> getListaProvince() {
        return listaProvince;
    }

    public void setListaProvince(List<SelectItem> listaProvince) {
        this.listaProvince = listaProvince;
    }

    public List<SelectItem> getTipoApparato() {
        return tipoApparato;
    }

    public void setTipoApparato(List<SelectItem> tipoApparato) {
        this.tipoApparato = tipoApparato;
    }

    public List<SelectItem> getPosizionamentoApparato() {
        return posizionamentoApparato;
    }

    public void setPosizionamentoApparato(List<SelectItem> posizionamentoApparato) {
        this.posizionamentoApparato = posizionamentoApparato;
    }

    public List<SelectItem> getBudgetApparato() {
        return budgetApparato;
    }

    public void setBudgetApparato(List<SelectItem> budgetApparato) {
        this.budgetApparato = budgetApparato;
    }
}
